﻿// -----------------------------------------------------------------------
// <copyright file="IContentProviderAuthenticationService.cs" company="Zen Design Corp">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

namespace Zen.BlackBerry.Subscription.Auth
{
	using System.Security.Principal;

	/// <summary>
	/// Interface which allows a content provider to perform their own
	/// authentication actions.
	/// </summary>
	public interface IContentProviderAuthenticationService
	{
		/// <summary>
		/// Authenticates a subscriber with the content provider based on the
		/// information passed in.
		/// </summary>
		/// <param name="request">The request.</param>
		/// <returns>
		/// A <see cref="T:IPrincipal"/> containing the results of a successful
		/// authentication.
		/// </returns>
		/// <remarks>
		/// Important note: An implementation of this method should ONLY
		/// contain business logic relating to the authentication of a
		/// subscriber. It should not contain any form of subscription business
		/// logic.
		/// </remarks>
		IPrincipal AuthenticateSubscriber(BaseAuthenticationRequest request);
	}
}
